﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Company.Hardware.Base.Entities
{
    /// <summary>
    /// HL7消息的首消息段，所有的消息都是以MSH段开头，一般位于消息的最前面。
    /// 该消息段用于定义消息的意图、来源、目的和消息语法的某些细节
    /// </summary> 
    public class HL7MSH : HL7Base
    {
        /// <summary>
        /// 包含段ID和第一个真正的域之间的分隔符，定义消息剩下部分的域分隔符（|）
        /// </summary>
        public string? fieldSeparator { get; set; }
        /// <summary>
        /// 包含组件分隔符，重复分隔符，转义分隔符，和子组件分隔符（^~\&）
        /// </summary>
        public string? encodingCharacters { get; set; }
        /// <summary>
        /// 发送端应用程序，取YHLO
        /// </summary>
        public string? sendingApplication { get; set; }
        /// <summary>
        /// 发送端设备，取设备型号，例如iFlash3000
        /// </summary>
        public string? sendingFacility { get; set; }
        /// <summary>
        /// 置空，保留。接收端应用程序
        /// </summary>
        public string? receivingApplication { get; set; }
        /// <summary>
        /// 置空，保留。接收端设备
        /// </summary>
        public string? receivingFacility { get; set; }
        /// <summary>
        /// 当前消息的时间。调用系统的时间信息
        /// </summary>
        public DateTime dateTimeOfMessage { get; set; }
        /// <summary>
        /// 置空，保留。安全性
        /// </summary>
        public string? security { get; set; }
        /// <summary>
        /// 消息的类型，如：ORU^R01
        /// </summary>
        public string? messageType { get; set; }
        /// <summary>
        /// 消息控制ID，唯一标识一个消息，随消息数目增加从1递增
        /// </summary>
        public string? messageControlID { get; set; }
        /// <summary>
        /// 处理ID，一直取P （表示产品）
        /// </summary>
        public string? processingID { get; set; }
        /// <summary>
        /// 版本ID，HL7协议版本：2.3.1
        /// </summary>
        public string? versionID { get; set; }
        /// <summary>
        /// 置空，保留。序列号
        /// </summary>
        public string? sequenceNumber { get; set; }
        /// <summary>
        /// 置空，保留。连续指针
        /// </summary>
        public string? continuationPointer { get; set; }
        /// <summary>
        /// 接收应答类型，仅对于DSR^Q03消息有效。取值为P，表示LIS系统主动发送的样本信息。其他值表示响应LIS查询的样本信息，可置空。
        /// </summary>
        public string? acceptAcknowledgmentType { get; set; }
        /// <summary>
        /// 应用程序应答类型，作为发送的结果类型。0-病人样本测试结果；1-定标结果；2-质控结果
        /// </summary>
        public string? applicationAcknowledgmentType { get; set; }
        /// <summary>
        /// 置空，保留。国家代码
        /// </summary>
        public string? countryCode { get; set; }
        /// <summary>
        /// 字符集，取ASCII
        /// </summary>
        public string? characterSet { get; set; }
        /// <summary>
        /// 置空，保留。消息主要语言
        /// </summary>
        public string? principalLanguageOfMessage { get; set; }
        /// <summary>
        /// 置空，保留。交替字符集处理方案
        /// </summary>
        public string? alternateCharacterSetHandlingScheme { get; set; }
    }
}
